package com.niiwoo.civet.mobile.vo.response.invest;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Data
@ToString
@ApiModel("鸿特个人居间借款合同参数")
public class OrgPersonalFastLoanContractResponseVO {
	@ApiModelProperty("合同编号")
	private String contractNo;
	@ApiModelProperty("甲方列表")
	private List<APart> aPartList = new ArrayList<>();
	@ApiModelProperty("乙方")
	private BPart bPart = new BPart();
	@ApiModelProperty("丙方")
	private CPart cPart = new CPart();
	@ApiModelProperty("丁方")
	private DPart dPart = new DPart();
	@ApiModelProperty("戍方")
	private EPart ePart = new EPart();
	@ApiModelProperty("合同金额")
	private BigDecimal amount;
	@ApiModelProperty("借款期限")
	private Integer deadline;
	@ApiModelProperty("合同期限类型1月2天")
	private Byte deadlineUnit;
	@ApiModelProperty("借款年华利率")
	private BigDecimal borrowRate; 
	@ApiModelProperty("借款利息")
	private BigDecimal loanInterest; 
	@ApiModelProperty("还款方式")
	private String repaymentType; 
	@ApiModelProperty("借款用途")
	private String projectTitle; 
	@ApiModelProperty("最后还款日期")
	private Date refundDate; 
	@ApiModelProperty("罚息率")
	private BigDecimal penaltyRate; 
	@ApiModelProperty("平台管理费")
	private BigDecimal platformManagementFee; 
	@ApiModelProperty("担保服务费")
	private BigDecimal guaranteeServiceFee; 
	@ApiModelProperty("平台管理年化率")
	private BigDecimal platformManagementFeeRateYear;
	@ApiModelProperty("担保服务年化率")
	private BigDecimal guaranteeServiceFeeRateYear;
	@ApiModelProperty("咨询服务费")
	private BigDecimal consultantFee;
	@ApiModelProperty("立即支付咨询服务费")
	private BigDecimal immediatePaymentConsultantFee;
	@ApiModelProperty("咨询服务费第一年应收")
	private BigDecimal firstYearConsultantFee;
	@ApiModelProperty("咨询服务费第二年应收")
	private BigDecimal secondYearsConsultantFee;
	@ApiModelProperty("咨询服务费第三年应收")
	private BigDecimal thirdYearConsultantFee;
	@ApiModelProperty("咨询服务年化率")
	private BigDecimal consultantFeeYear;
	@ApiModelProperty("债务总负担金额上限")
	private BigDecimal payTotal;
	@ApiModelProperty("债务总负担金额上限年化率")
	private BigDecimal payTotalRateYear;
	@ApiModelProperty("生效时间")
	private Date effectiveTime;

	@ApiModelProperty("前置平台管理费")
	private BigDecimal beforeManageFee;
	@ApiModelProperty("平台管理费费用")
	private BigDecimal manageFee;
	@ApiModelProperty("平台管理费收取节点: 1放款时、2还款第一期、3还款每期")
	private Byte guaranteeFeeChargeNode;

	/**
	 * 甲方
	 */
	@Data
	@ToString
	@ApiModel("甲方")
	public static class APart implements Serializable {
		@ApiModelProperty("姓名")
		private String name; 
		@ApiModelProperty("身份证")
		private String idCard; 
		@ApiModelProperty("金额")
		private BigDecimal amount; 
	}

	/**
	 * 已方
	 */
	@Data
	@ToString
	@ApiModel("已方")
	public static class BPart implements Serializable {
		@ApiModelProperty("姓名")
		private String name; 
		@ApiModelProperty("身份证")
		private String idCard; 
		@ApiModelProperty("地址")
		private String address; 
		@ApiModelProperty("电子邮箱")
		private String email;
		@ApiModelProperty("联系方式")
		private String phone;
		@ApiModelProperty("机构信用代码")
		private String institutionalReditCode;
	}

	/**
	 * 丙方
	 */
	@Data
	@ToString
	@ApiModel("丙方")
	public static class CPart implements Serializable {
		@ApiModelProperty("姓名")
		private String name; 
		@ApiModelProperty("电子邮箱")
		private String email; 
		@ApiModelProperty("机构信用代码")
		private String institutionalReditCode; 
	}

	/**
	 * 丁方
	 */
	@Data
	@ToString
	@ApiModel("丁方")
	public static class DPart implements Serializable {
		@ApiModelProperty("姓名")
		private String name; 
		@ApiModelProperty("地址")
		private String address;
	}
	/**
	 * 戊方
	 * @author liuchun
	 *
	 * 2018年5月21日
	 */
	@Data
	@ToString
	@ApiModel("戊方")
	public static class EPart implements Serializable{
		@ApiModelProperty("姓名")
		private String name; 
		@ApiModelProperty("机构信用代码")
		private String institutionalReditCode; 
		@ApiModelProperty("地址")
		private String address;
	}
}
